package com.hskn.hss.module.cases.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hskn.hss.core.annotation.DataScope;
import com.hskn.hss.core.domain.BaseEntity;
import com.hskn.hss.core.page.TableDataInfo;
import com.hskn.hss.exception.HssException;
import com.hskn.hss.module.cases.entity.Cases;
import com.hskn.hss.module.cases.entity.CasesFull;
import com.hskn.hss.module.cases.entity.CasesTable;
import com.hskn.hss.module.cases.to.EventDistributionTO;
import com.hskn.hss.module.cases.vo.ProblemSourceVO;
import com.hskn.hss.module.cases.vo.TimelyAnalysisTableVO;
import com.hskn.hss.module.cases.vo.TreatmentTableVO;
import com.hskn.hss.module.tlemployee.entity.TIEmployeeVo;
import com.hskn.hss.utils.BTable;

import java.text.ParseException;
import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author hskn
 * @since 2021-05-18
 */
public interface ICasesService extends IService<Cases> {

    JSONObject mList(BaseEntity entity, JSONObject params) throws HssException;

    JSONObject appmList(JSONObject params) throws HssException;

    @DataScope(deptAlias = "depid", userAlias = "create_uid,person_id,cc_uid")
    List<JSONObject> amount(BaseEntity entity, JSONObject params) throws HssException;

    void mUpdate(JSONObject params) throws HssException;

    void add(JSONObject params) throws HssException;

    void del(JSONObject params) throws HssException;

    CasesFull detail(JSONObject params) throws HssException;

    void archive(JSONObject params) throws HssException;

    void jiean(JSONObject params) throws HssException;

    void cuiban(JSONObject params) throws HssException;

    void feiqi(JSONObject params) throws HssException;

    void huifu(JSONObject params) throws HssException;

    void gaipai(JSONObject params) throws HssException;

    void chuli(JSONObject params) throws HssException;

    void assigned(JSONObject params) throws HssException;

    void qiandao(JSONObject params) throws HssException;

    JSONObject getZrjgtjSjfbSjlyChart(JSONObject params) throws HssException;

    JSONObject getZrjgtjSjfbSjlyList(JSONObject params) throws HssException;

    JSONObject getZrjgtjSjfbWtlxChart(JSONObject params) throws HssException;

    JSONObject getZrjgtjSjfbWtlxList(JSONObject params) throws HssException;

    JSONObject getZrjgtjSjfbSjzsChart(JSONObject params) throws HssException;

    JSONObject getZrjgtjClqkChart(JSONObject params) throws HssException;

    JSONObject getZrjgtjClqkList(JSONObject params) throws HssException;

    JSONObject getZrjgtjCljsfxChart(JSONObject params) throws HssException;

    JSONObject getZrjgtjCljsfxList(JSONObject params) throws HssException;

    TIEmployeeVo autoAssign(JSONObject params) throws HssException;

    List<List<Object>> getProblemTypeHistogramEChars(EventDistributionTO eventDistributionTO);

    List<List<Object>> getTreatmentEChars(EventDistributionTO eventDistributionTO) throws ParseException;

    List<List<Object>> getTimelyAnalysisEChars(EventDistributionTO eventDistributionTO) throws ParseException;

    TableDataInfo getTreatmentTable(EventDistributionTO eventDistributionTO);

    List<TreatmentTableVO> getTreatmentTableExcel(EventDistributionTO eventDistributionTO);

    TableDataInfo getTimelyAnalysisTable(EventDistributionTO eventDistributionTO);

    List<TimelyAnalysisTableVO> getTimelyAnalysisTableExcel(EventDistributionTO eventDistributionTO);

    List<List<Object>> getDistributionTimeTrendEChars(EventDistributionTO eventDistributionTO) throws ParseException;

    TableDataInfo getProblemSourceTable(EventDistributionTO eventDistributionTO);

    TableDataInfo getProblemTypeTableVOTable(EventDistributionTO eventDistributionTO);

    List<List<Object>> selectCaseForLineChartBTable(Cases cases);

    List<CasesTable> selectCaseForDepartCount(Cases cases);

    List<CasesTable> selectCaseForcaseIssueCount(Cases cases);

    List<CasesTable> selectCaseForOverCount(Cases cases);

    List<CasesTable> selectCaseForTimelyAnalyse(Cases cases);

    List<List<Object>> selectCaseForOverBTable(Cases cases);

    List<List<Object>> eventPersonByType(Cases cases);

    List<List<Object>> eventPersonByTime(Cases cases);

    TableDataInfo eventPersonByCreater(Cases cases);

    List<CasesTable> eventPersonByCreaterExcel(Cases cases);

    TableDataInfo eventPersonByProblem(Cases cases);

    List<CasesTable> eventPersonByProblemExcel(Cases cases);

    TableDataInfo eventPersonTreatmentTable(Cases cases);

    List<Cases> casesTableListExcel(BaseEntity entity, JSONObject params);

    List<CasesTable> eventPersonTreatmentTableExcel(Cases cases);

    TableDataInfo eventPersonAnalysisTable(EventDistributionTO eventDistributionTO);

    List<TimelyAnalysisTableVO> eventPersonAnalysisTableExcel(EventDistributionTO eventDistributionTO);

    List<List<Object>> eventPersonTreatment(Cases cases);

    List<List<Object>> eventPersonAnalysis(EventDistributionTO eventDistributionTO) throws ParseException ;


}
